#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED 显示屏的宽度，以像素为单位
#define SCREEN_HEIGHT 64 // OLED 显示屏的高度，以像素为单位
#define OLED_RESET     -1 // 如果你的屏幕有复位引脚，请将其连接到 GPIO 并设置对应的引脚号

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  // 初始化串口
  Serial.begin(115200);

  // 初始化 I2C，指定 SDA 和 SCL 引脚
  Wire.begin(16, 17); // 使用 GPIO16 作为 SDA，GPIO17 作为 SCL

  // 初始化 OLED 显示屏
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 0x3C 是 I2C 地址
    Serial.println(F("SSD1306 allocation failed"));
    for (;;); // 如果初始化失败，则进入无限循环
  }

  // 清除屏幕内容
  display.clearDisplay();

  display.setTextSize(1);                     // 设置字体大小
  display.setTextColor(SSD1306_WHITE);         // 设置字体颜色为白色
  display.setCursor(0, 10);                   // 设置文本起始位置
  // 绘制线条
  display.drawLine(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, SSD1306_WHITE);
  display.drawLine(0, SCREEN_HEIGHT - 1, SCREEN_WIDTH - 1, 0, SSD1306_WHITE);

  // 绘制×
 display.println(F("ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
  // 将缓冲区内容显示到屏幕上
  display.display();
}

void loop() {
  // 空循环，不做额外操作
}

